package main

import "fmt"

var FibCache = make(map[int]int)

func Fib(n int) int {
	if n <= 2 {
		return 1
	}
	if v, ok := FibCache[n]; ok {
		return v
	} else {
		FibCache[n] = Fib(n-1) + Fib(n-2)
	}
	return FibCache[n]
}

func main() {
	fmt.Println(Fib(50))
}
